使用达梦 8 数据库

数据库选型建议

PIGX 官方目前主推 MySQL 8 和 达梦国产化数据库,建议优先在这两种数据库上跑通基础功能后,再探索使用其他类型的数据库。 由于底层采用了 MyBatis-Plus,已屏蔽大部分数据库间的差异。因此,只需通过工具将 MySQL 脚本转换为目标数据库的格式即可完成迁移,无需复杂的额外调整。

环境说明

依赖版本
数据库dm8_single:dm8_20240715_rev232765_x86_rh6_64
PIGX5.9
架构模式单体

一、使用 SQLark 迁移 MySQL 脚本

达梦数据库提供了免费的数据迁移工具 SQLark,可以将 Oracle、MySQL 等数据库迁移到达梦。DTS 具有全图形化操作,简单直观,迁移速度快。通过 SQLark,将标准 MySQL 脚本转换为达梦数据库脚本。

SQLark迁移工具

二、单体架构模式

2.1 调整 common-sequence 依赖

为保证系统的兼容性和稳定性,还需对以下配置进行调整:

  • pigx-common-sequence/pom.xml 中保留或修改成 dm 驱动:
达梦驱动配置

2.2 调整 pigx-boot/application-dev.yml 维护链接和配置

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: dm.jdbc.driver.DmDriver
      url: jdbc:dm://localhost:5236?schema=PIGXX_BOOT&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
      username: SYSDBA
      password: SYSDBA
# 使用达梦需要关闭自动创建表
flowable:
  database-schema-update: none

三、【进阶】微服务架构模式

3.1、修改 Nacos 适配达梦数据源

在项目的 pom.xml 中添加以下依赖:

<!--达梦数据库插件:https://github.com/pig-mesh/nacos-datasource-plugin-dm8-->
<dependency>
    <groupId>com.pig4cloud.plugin</groupId>
    <artifactId>nacos-datasource-plugin-dm8</artifactId>
    <version>${nacos对应版本的插件}</version>
</dependency>

<dependency>
    <groupId>com.dameng</groupId>
    <artifactId>DmJdbcDriver18</artifactId>
</dependency>
Nacos 版本插件版本
2.2.0 - 2.3.00.0.2
2.3.1 - 2.3.20.0.3
2.4.0 - 2.4.30.0.4
2.5.0 -0.0.5
3.0.0 -0.0.6

然后在 pigx-register/application.properties 中配置达梦数据库的相关参数:

spring.sql.init.platform=dameng
db.num=1
db.url.0=jdbc:dm://localhost:5236?schema=P2
db.user.0=SYSDBA
db.password.0=SYSDBA
db.pool.config.driverClassName=dm.jdbc.driver.DmDriver
Nacos 配置

3.2、修改微服务数据连接参数

  • 添加达梦数据库驱动依赖:
<dependency>
    <groupId>com.dameng</groupId>
    <artifactId>DmJdbcDriver18</artifactId>
</dependency>
  • 将原有服务连接 MySQL 的参数修改为达梦数据库的链接参数:
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://localhost:5236?schema=XXX&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
username: 用户名
password: 密码

3.3、其他必要配置

为保证系统的兼容性和稳定性,还需对以下配置进行调整:

  • pigx-common-sequence/pom.xml 中保留或修改成 dm 驱动:
达梦驱动配置
  • nacos/pigx-report-platform-dev.yml 中添加如下配置:
# 增加如下配置,关闭 JPA 自动建表
spring:
  jpa:
    hibernate:
      ddl-auto: none
  • nacos/pigx-flow-engine-biz-dev.yml 中添加如下配置:
# 增加如下配置,关闭 Flowable 自动建表
flowable:
  database-schema-update: none